 (August 1998).iso/full/W98Comp/side1.gif)  (August 1998).iso/full/W98Comp/side2.GIF)
|
 (August 1998).iso/full/W98Comp/holder.gif)
De-mystifying the 8Gb limit
As many users have found, there
seems to be a "mystical" limit to how big a hard drive can be used by DOS.
At first glance this limit seems arbitrary and can be frustrating, especially with
the sudden glut of 8Gb+ drives on the market. There is, however, a valid reason
behind it.
On most standard IDE drives (SCSI are different but similar rules apply) it is normal to
have 16 heads and 63 sectors per track. Cylinders increase as drive size increases. We are
seeing drives with as high as 24,000 cylinders or as low as 50. To figure the drive's
capacity, multiply the cylinder, head, and sector numbers together. Divide the product by
2048. As a formula it looks like this: (cylinders * heads * sectors) / 2048 equals
megabytes
This will give you a number in megabytes that is equal to the size of the drive. The
system uses these numbers to help it when reading and writing to the disk.
The first limit comes directly from how these numbers relate to the system. The
system BIOS's INT13h interface allows for a maximum of 1024 cylinders, 255 heads, and 63
sectors per track. The standard IDE interface allows for a maximum of 65,536 cylinders, 16
heads, and 63 sectors. In order to satisfy the limits of both of these numbers, the
minimum highest common number for each is used. This produces a maximum number of
1024 cylinders, 16 heads, and 63 sectors (504 MB per the calculation above).
That limit quickly became too restrictive and a work around method was developed. It
is now possible to "translate" a drive by multiplying the number of heads to
reduce the number of cylinders. For instance, if I had a drive that was 2046 cylinders, 16
heads, and 63 sectors, I could translate it by halving the number of cylinders and
doubling the number of heads. This results in a drive that has 1023 cylinders, 32
heads, and 63 sectors.
By using a translator between the IDE interface and the BIOS INT13h interface, we can
accomplish this translation and satisfy both limits. My IDE drive will still have
the same physical number of cylinders, heads, and sectors that fit within its limits, but
the numbers reported to the BIOS INT13h interface will be translated. This changes our
limit to 1024 cylinders, 255 heads, and 63 sectors (8Gb per the calculation above) or
simply the limits that the BIOS has in the first place. We are now capable of
working with anything up to 8Gb.
There is another place that this limit can be found. Every partition table in a PC
is set up with the same parameters. An entry for a single partition is 16 bytes
long. Of those 16 bytes, three are dedicated to holding the beginning cylinder,
head, and sector of a partition and three are dedicated to holding the end cylinder, head,
and sector of a partition. A single byte can hold a number up to 255. If this
number where strictly adhered to this would leave a limit of 255 cylinders, 255 heads, and
255 sectors. Of the heads byte, this is true. The other two bytes are
manipulated slightly to allow for different numbers. The sector number is held in a
six digit binary number and the cylinders in a 10 digit binary number. To fit this into
the byte structure (remember 8 bits to a byte), the first two digits of the cylinder
number are chopped off and put on the front of the sector number. Learning to interpret
the numbers can be interesting, but it effectively gives us a limit of 1023 cylinders, 255
heads, and 63 sectors. Once again 8Gb.
Now, if these limits look so built in, why are we seeing people breaking them? The
answer is logical addressing. All of these limits are related to the number of
cylinders, heads, and sectors that can be handled. When you start addressing a
drive with logical numbers (start counting at the first sector and keep counting until you
get to the end), much larger numbers are possible. For instance, the total number of
sectors for a partition is stored in four bytes in the partition table. Four bytes
allows partition sizes up to two terabytes. If we were to always use this number,
then the 8Gb limit would be non-existent.
But the limit persists. This is because all logical addressing is done by operating
systems. Windows 95, Windows NT 4.0, and OS/2 Warp have systems that allow them to
address the drive in a logical manner. By doing this, all of these operating systems can
break the 8Gb barrier. DOS and Windows 3.x don't have this ability. They still rely
on the traditional cylinder, head, and sector addressing. For this reason any program that
runs under these operating systems is also limited to 8Gb unless it has its own system for
using logical addressing.Courtesy of PowerQuest.
Originally written by Jeff Rushton, Technical Support for The Partition Magician
newsletter. For more information: http://www.powerquest.com
PowerQuest is committed to breaking the barrier, but want to do so in as safe a manner as
possible. To break through the 8Gb barrier, some PC manufacturers have started
including a BIOS extension for access to the disk drive. All PowerQuest products
have built-in support for this BIOS extension. Unfortunately, many PCs still do not
have these extensions, limiting PowerQuest products to 8Gb. PowerQuest is developing
technology to work with these large drives.
|
|